Eliminate i386 idt_table.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Mon, 20 Feb 2006 17:22:00 +0000 (17:22 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Mon, 20 Feb 2006 17:22:00 +0000 (17:22 +0000)
Add CONFIG_X86_NO_IDT to exclude all code which references the idt table.
Make CONFIG_X86_F00F_BUG conditional on CONFIG_X86_NO_IDT.

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
linux-2.6-xen-sparse/arch/i386/Kconfig
linux-2.6-xen-sparse/arch/i386/Kconfig.cpu
linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S
linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c

index 88e1e1b98e07f6c6714d64b177f236e030017430..e79c71237615d0f0a81f5bd04829ab29f9b9d3bf 100644 (file)
@@ -1186,6 +1186,11 @@ config X86_SYSENTER
        depends on !X86_NO_TSS
        default y
 
+config X86_NO_IDT
+       bool
+       depends on X86_XEN
+       default y
+
 config KTIME_SCALAR
        bool
        default y
index 79603b3471f96ef13e2836bc2a54c9db7e288132..a52d7d494f1f8638aa47b9e483a2e2f898035540 100644 (file)
@@ -251,7 +251,7 @@ config X86_PPRO_FENCE
 
 config X86_F00F_BUG
        bool
-       depends on M586MMX || M586TSC || M586 || M486 || M386
+       depends on (M586MMX || M586TSC || M586 || M486 || M386) && !X86_NO_IDT
        default y
 
 config X86_WP_WORKS_OK
index e0c31a0ae0a14c6ba249dea90b208dcee4dedf7f..93c5e85526d6847128b30132c7f8638f5bf3f239 100644 (file)
@@ -94,19 +94,11 @@ ENTRY(stack_start)
        .long init_thread_union+THREAD_SIZE
        .long __BOOT_DS
 
-ready: .byte 0
-
-.globl idt_descr
-.globl cpu_gdt_descr
-
        ALIGN
-       .word 0                         # 32-bit align idt_desc.address
-idt_descr:
-       .word IDT_ENTRIES*8-1           # idt contains 256 entries
-       .long idt_table
 
 # boot GDT descriptor (later on used by CPU#0):
        .word 0                         # 32 bit align gdt_desc.address
+       .globl cpu_gdt_descr
 cpu_gdt_descr:
        .word GDT_SIZE
        .long cpu_gdt_table
index c94e7abb159674f0e0fd3001b76dec62e8d95f05..34576b17fa81d50a656e63c5a8af193c255f2368 100644 (file)
@@ -61,12 +61,14 @@ asmlinkage int system_call(void);
 /* Do we ignore FPU interrupts ? */
 char ignore_fpu_irq = 0;
 
+#ifndef CONFIG_X86_NO_IDT
 /*
  * The IDT has to be page-aligned to simplify the Pentium
  * F0 0F bug workaround.. We have a special link segment
  * for this.
  */
 struct desc_struct idt_table[256] __attribute__((__section__(".data.idt"))) = { {0, 0}, };
+#endif
 
 asmlinkage void divide_error(void);
 asmlinkage void debug(void);